// 服务器的入口文件
// 1.创建koa对象
const Koa = require('koa')
const app = new Koa()

// 2.编写响应函数（中间件） 绑定中间件
// context: 上下文，web容器，context.request context.response
// next: 下一个中间件，下一层中间件是否能够得到执行，取决于next这个函数有没有被调用 洋葱模型

// app.use((context, next) => {
//   console.log(context.request)
//   context.response.body = 'hello world'
//   next()
// })

// 绑定第一层中间件
const koaDurationMiddle = require('./middleware/koa_response_duration')
app.use(koaDurationMiddle)
// 绑定第二层中间件
const koaHeaderMiddle = require('./middleware/koa_response_header')
app.use(koaHeaderMiddle)
// 绑定第三层中间件
const koaDataMiddle = require('./middleware/koa_response_data')
app.use(koaDataMiddle)
// 3.绑定端口号 3000

app.listen(3000)


// const WebSocket = require('ws')
// // 创建WebSocket服务端的对象，绑定端口号
// const wss = new WebSocket.Server({
//   port: 9998
// })
//
// // 对客户端的连接事件进行监听
// // client代表的是客户端的连接socket对象
// wss.on('connection',client =>{
//   console.log('有客户端连接成功了...........')
//   // 对客户端的连接对象进行message事件的监听
//   // msg：由客户端发给服务端的数据
//   client.on('message',msg=>{
//     console.log('客户端发送数据给服务端了：'+ msg)
//     // 由服务端往客户端发送数据
//     client.send('hello socket from backed')
//   })
//
// })
